
import com.l2fprod.common.swing.JOutlookBar;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Lancelot
 */
public class Interface {
    private static String version = "0.03";
    private static Controleur c = new Controleur();

    public static void main(String args[]){
//        c.demarage();
//        c.enregistreActions();

        //Crï¿½ation des ï¿½lï¿½ments constitutifs de la fenï¿½tre
        //Crï¿½ation de la fenï¿½tre en elle-mï¿½me
        final JFrame fenetre = new JFrame("JTrader v."+version);
        fenetre.setResizable(false);
        //Crï¿½ation de la barre d'ï¿½tat
        final JTextArea barreEtat = new JTextArea("Pour commencer, sÃ©lectionnez, ou crÃ©ez un nouveau profil.");
        barreEtat.setBackground(Color.WHITE);
        barreEtat.setEditable(false);
        //Crï¿½ation du menu principal
        JOutlookBar menuGauche = new JOutlookBar();
        menuGauche.setPreferredSize(new Dimension(96, 0));

        
//        JPanel panneauDroite = new JPanel();
//
//        ImageIcon imageDebut = new ImageIcon("debut.png");
//        JLabel image = new JLabel(imageDebut);
//        //image.setSize(panneauDroite.getWidth(),panneauDroite.getHeight());
//        //JButton b1 = new JButton("test");
//        //panneauDroite.add(b1, BorderLayout.CENTER);
//        panneauDroite.add(image);
//        fenetre.add(panneauDroite, BorderLayout.CENTER);
        


        //Crï¿½ation des ActionListener.
        ActionListener nouveauProfil = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Crï¿½ation du nouveau profil en cours...");
                String tmp = null;
                tmp = JOptionPane.showInputDialog(null, "Veuillez entrer le nom du nouveau profil : ", "Crï¿½ation d'un nouveau profil", 3);
                try{
                    if(!(tmp.isEmpty())){
//                    	c.nouvelUtilisateur(tmp, 1);
//                    	c.enregistreUtil();
                        barreEtat.setText("Profil crÃ©Ã©.");
                    }else{
                        barreEtat.setText("La crÃ©ation du profil a Ã©tÃ© annulÃ©e !");
                    }
                }catch(NullPointerException e1){
                    barreEtat.setText("La crÃ©ation du profil a Ã©tÃ© annulÃ©e !");
                }
            }
	};

        ActionListener ouvrirProfil = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Ouverture du profil en cours...");
                JFileChooser choix = new JFileChooser();
                choix.setVisible(true);
                int tmp = choix.showOpenDialog(null);
                if(tmp==0){
//                    c.connexion(choix.getDialogTitle());
                    barreEtat.setText("Profil chargÃ©.");
                }else{
                    barreEtat.setText("Le chargement du profil a Ã©tÃ© annulÃ© !");
                }
            }
	};

        ActionListener supprimerProfil = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Supression du profil en cours...");
                int tmp = JOptionPane.showConfirmDialog(null, "ÃŠtes-vous vraiment sÃ»r de vouloir\nsupprimer le profil en cours ?", "Suppression du profil", 0, 2);

                if(tmp==0){
                    //APPELLE LE CONTROLEUR
                    barreEtat.setText("Profil supprimÃ©.");
                }
                barreEtat.setText("La suppression du profil a Ã©tÃ© annulÃ©e !");
            }
	};

        ActionListener afficherPortefeuille = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Chargement du portefeuille d'actions en cours...");
                JTextArea ligne1 = new JTextArea("Solde : ");
                ligne1.setEditable(false);
                JTextArea ligne2 = new JTextArea("Valeur fictive : ");
                ligne2.setEditable(false);

                JPanel panneauDroit = new JPanel();
                GridLayout layout1 = new GridLayout(0, 1);
                panneauDroit.setLayout(layout1);

                JPanel sousPanneau1 = new JPanel();
                JPanel sousPanneau2 = new JPanel();
                GridLayout layout2 = new GridLayout(0, 1);
                sousPanneau1.setLayout(layout2);
                GridLayout layout3 = new GridLayout(0, 3);
                sousPanneau2.setLayout(layout3);

                sousPanneau1.add(ligne1);
                sousPanneau1.add(ligne2);
                sousPanneau2.add(new JButton("Test1"));
                sousPanneau2.add(new JButton("Test2"));
                sousPanneau2.add(new JButton("Test3"));

                panneauDroit.add(sousPanneau1);
                panneauDroit.add(sousPanneau2);

                fenetre.add(panneauDroit, BorderLayout.CENTER);
                barreEtat.setText("Portefeuille chargÃ©.");
            }
	};

        ActionListener afficherAction = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                String[] listeActions = {"Natixis", "Suez", "Saint Gobain"};
                String action = (String)JOptionPane.showInputDialog(
                    null,
                    "Choisissez une action Ã  afficher :",
                    "Recherche d'une action",
                    JOptionPane.PLAIN_MESSAGE,
                    null,//icone de recherche
                    listeActions,
                    listeActions[0]
                );
                
                if(!(action == null)){
                    //L'ACTION EN COURS A AFFICHER EST IDENTIFIABLE PAR SON NOM SITUE DANS action (STRING)
                    barreEtat.setText("Ouverture de l'explorateur d'action(s)...");
                    JPanel panneauDroit = new JPanel();
                    GridLayout layout = new GridLayout(7,2);
                    panneauDroit.setLayout(layout);

                    JTextArea txt1 = new JTextArea("Nom");
                    txt1.setEditable(false);
                    JTextArea txt2 = new JTextArea("RÃ©fÃ©rence");
                    txt2.setEditable(false);
                    JTextArea txt3 = new JTextArea("Valeur");
                    txt3.setEditable(false);
                    JTextArea txt4 = new JTextArea("Nombre acquis");
                    txt4.setEditable(false);
                    JTextArea txt5 = new JTextArea("Valeur d'achat");
                    txt5.setEditable(false);
                    JTextArea txt6 = new JTextArea("Valeur fictive");
                    txt6.setEditable(false);

                    //ATTENTION :
                    //SUPPRIMER DANS CES JTEXTAREA LES VALEURS INSEREES DANS LES GUILLEMETS ET LES REMPLACER PAR LES VALEURS REELLES RECUEILLIES A L'AIDE DU CONTROLEUR...
                    //INSERER DANS CE COMPOSANT LE NOM DE L'ACTION
                    JTextArea inp1 = new JTextArea("NATIXIS");
                    inp1.setEditable(false);
                    //INSERER DANS CE COMPOSANT LA REFERENCE DE L'ACTION
                    JTextArea inp2 = new JTextArea("FR0000120685");
                    inp2.setEditable(true);
                    //INSERER DANS CE COMPOSANT LA VALEUR DE L'ACTION
                    JTextArea inp3 = new JTextArea("4.400 â‚¬");
                    inp3.setEditable(true);
                    //INSERER DANS CE COMPOSANT LE NOMBRE TOTAL ACQUIS DE CES ACTIONS
                    JTextArea inp4 = new JTextArea("500");
                    inp4.setEditable(true);
                    //INSERER DANS CE COMPOSANT LA VALEUR MOYENNE A LAQUELLE ONT ETE ACHETEES CES ACTIONS
                    JTextArea inp5 = new JTextArea("3.87 â‚¬");
                    inp5.setEditable(true);
                    //INSERER DANS CE COMPOSANT LA VALEUR TOTALE FICTIVE DES ACTIONS ACQUISES EN FONCTION DU COURS ACTUEL
                    JTextArea inp6 = new JTextArea("1935 â‚¬");
                    inp6.setEditable(true);

                    JButton but1 = new JButton("Acheter");
                    but1.addActionListener( new ActionListener(){
                        public void actionPerformed (ActionEvent e){
                            //menuGauche.setSelectedComponent(fenetre_achats);
                           //BALANCE SUR L'ECRAN DES ACHATS
                        }
                    });
                    JButton but2 = new JButton("Vendre");
                    but2.addActionListener( new ActionListener(){
                        public void actionPerformed (ActionEvent e){
                           //BALANCE SUR L'ECRAN DES VENTES
                        }
                    });

                    panneauDroit.add(txt1);
                    panneauDroit.add(inp1);
                    panneauDroit.add(txt2);
                    panneauDroit.add(inp2);
                    panneauDroit.add(txt3);
                    panneauDroit.add(inp3);
                    panneauDroit.add(txt4);
                    panneauDroit.add(inp4);
                    panneauDroit.add(txt5);
                    panneauDroit.add(inp5);
                    panneauDroit.add(txt6);
                    panneauDroit.add(inp6);
                    panneauDroit.add(but1);
                    panneauDroit.add(but2);

                    fenetre.add(panneauDroit, BorderLayout.CENTER);
                    panneauDroit.repaint();
                    barreEtat.setText("Explorateur chargÃ©.");
                }else{
                    barreEtat.setText("Le chargement de l'explorateur a Ã©tÃ© annulÃ© !");
                }
            }
	};

        ActionListener acheterAction = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Ouverture du module d'achat en cours...");
                //APPELLE LE CONTROLEUR
                barreEtat.setText("Module chargÃ©.");
            }
	};

        ActionListener vendreAction = new ActionListener(){
            public void actionPerformed (ActionEvent e){
                barreEtat.setText("Ouverture du module de vente en cours...");
                //APPELLE LE CONTROLEUR
                barreEtat.setText("Module chargÃ©.");
            }
	};


        Icon icon = createImageIcon("filenew.png");
        JButton bouton1 = new JButton("Nouveau", icon);
        bouton1.setVerticalTextPosition(AbstractButton.BOTTOM);
        bouton1.setHorizontalTextPosition(AbstractButton.CENTER);
        bouton1.addActionListener(nouveauProfil);

        icon = createImageIcon("fileopen.png");
        JButton bouton2 = new JButton("Ouvrir", icon);
        bouton2.setVerticalTextPosition(AbstractButton.BOTTOM);
        bouton2.setHorizontalTextPosition(AbstractButton.CENTER);
        bouton2.addActionListener(ouvrirProfil);

        icon = createImageIcon("stop.png");
        JButton bouton3 = new JButton("Supprimer", icon);
        bouton3.setVerticalTextPosition(AbstractButton.BOTTOM);
        bouton3.setHorizontalTextPosition(AbstractButton.CENTER);
        bouton3.addActionListener(supprimerProfil);

        JPanel panel = new JPanel();

        GridLayout layout = new GridLayout(3, 0);
        panel.setLayout(layout);

        panel.add(bouton1);
        panel.add(bouton2);
        panel.add(bouton3);
        menuGauche.add("Profil", panel);


        panel = new JPanel();
        layout = new GridLayout(1, 0);
        panel.setLayout(layout);

        bouton1 = new JButton("Voir");
        bouton1.addActionListener(afficherPortefeuille);
        
        panel.add(bouton1);
        menuGauche.add("Portefeuille", panel);


        panel = new JPanel();
        layout = new GridLayout(3, 0);
        panel.setLayout(layout);

        bouton1 = new JButton("Cours");
        bouton1.addActionListener(afficherAction);
        bouton2 = new JButton("Acheter");
        bouton2.addActionListener(acheterAction);
        bouton3 = new JButton("Vendre");
        bouton3.addActionListener(vendreAction);

        panel.add(bouton1);
        panel.add(bouton2);
        panel.add(bouton3);
        menuGauche.add("Actions", panel);

        menuGauche.setVisible(true);
        
        fenetre.add(menuGauche, BorderLayout.LINE_START);

        fenetre.add(barreEtat, BorderLayout.PAGE_END);
        fenetre.pack();
        fenetre.setSize(500, 300);
        fenetre.setVisible(true);
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
        private static ImageIcon createImageIcon(String path) {
		java.net.URL imgURL = Interface.class.getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL);
	    } else {
	        System.err.println("Couldn't find file: " + path);
	        return null;
	    }
	}
}